# 1. 打印1-100 能被7整除的数。
# for a in range(1,101):
#     if a%7==0:
#         print(a,end=',')

# 2. a=["红A","红B","红C"] ,b=["黑1","黑2","黑3","黑4"] ,取出一个红球和一个黑球，有几种组合？输出组合。
# a=["红A","红B","红C"]
# b=["黑1","黑2","黑3","黑4"]
# c=0
# for i in a:
#     for j in b:
#         print(i,j,end=',  ')
#         c+=1
#     print('')
# print(f'共有{c}种组合')

# 3. a=[1,2,3,4,5,6,1,2,3,1,2,3]  统计1的个数。
# a=[1,2,3,4,5,6,1,2,3,1,2,3]
# b=0
# for i in a:
#     if i==1:
#         b+=1
# print(f'一共有{b}个1')


# 4. a="abcdeabcdab"  统计字符 "a" 的个数
# a="abcdeabcdab"
# b=0
# for i in a:
#     if i=='a':
#         b+=1
# print(f'a的个数为{b}')

# 5. a=["张三","李四","王五"]   依次打印出每个姓名的下标和下标对应的值。
# a=["张三","李四","王五"]
# for i in range(len(a)):
#     print(f"下标为{i}的时候，姓名为{a[i]}")

# 练习：课本29页1-10题
# (1) 从键盘输入一个字符，判断这个字符是数字，还是大写字母，还是小写字母，还是符号。

# char=input('请输入一个字符：')
# code=ord(char)
# if code >= 48 and code <=57:
#     print('这是一个数字。')
# elif code >= 65 and code <= 90:
#     print('这是一个大写字母')
# elif code >=97 and code <= 122:
#     print('这是一个小写字母')
# else:
#     print('这是一个符号')

# if char.isdigit():
#     print('这是一个数字')
# elif char.isupper():
#     print('这是一个大写字母')
# elif char.islower():
#     print('这是一个小写字母')
# else:
#     print('这是一个符号')

# (2) 统计字符：从键盘输入一个字符串，统计这个字符串当中包含几个大写字母，几个小写字母，几个数字，几个特殊符号。
# string=input('输入字符串：')
# upper,lower,digit,other=0,0,0,0
# for i in range(len(string)):
#     asc=ord(string[i])
#     if asc >= 65 and asc <= 90:
#         upper+=1
#     elif asc >= 97 and asc <= 122:
#         lower+=1
#     elif asc >= 48 and asc <= 57:
#         digit+=1
#     else:
#         other+=1
# print(f'这个字符串当中包含{upper}个大写字母，{lower}个小写字母，{digit}个数字，{other}个特殊符号。')


# (3) 水仙花数：计算三位整数（100～999）的水仙花数。水仙花数是指每一位的立方相加等于该数自己，比如153 = 1^3 + 5^3 + 3^3。
# for i in range(100,1000):
#     if i==(i//100)**3+(i%100//10)**3+(i%10)**3:
#         print(i)

# for i in range(100,1000):
#     if i==int(i/100)**3+(int(i/10)%10)**3+(i%10)**3:
#         print(i)

# (4) 字符串判断：从键盘输入一个字符串，判断该字符串是否可以被转换为一个有效的数字（禁止使用Python自带的string.isnumeric()方法进行判断）。
# str=input('请输入字符串：')
# negative,point,other,digit=0,0,0,0 # 负号，小数点，非数字符号，数字
# for char in str:
#     if 48 <= ord(char) <= 57:
#         digit += 1
#     elif ord(char) == 45:
#         negative += 1
#     elif ord(char) == 46:
#         point += 1
#     else:
#         other += 1
# print(f"数字有{digit}个，负号有{negative}个，小数点有{point}个，其他的字符有{other}个。")
# # 代码二：排除错误
# if other>0:
#     print("无效数字")
# elif negative>1 or point>1:
#     print("无效数字")
# elif negative==1 and str[0]!="-":
#     print("无效数字")
# elif point==1 and (str[0]=="." or str[-1]=="."):
#     print("无效数字")
# elif str[:2]=="-.":
#     print("无效数字")
# else:
#     print("合法数字")

# (5) 打印99乘法表。
# for i in range(1,10):
#     for j in range(1,i+1):
#         print(f'{j}*{i}={i*j}',end='\t')
#     print()

# (6) 一个10000以内整数，它加上100和加上268后都是一个完全平方数，请问该数是多少？（提示：用到math模块）
import math
# for i in range(1,10001):
#     m=int((i+100)**0.5)
#     n=int((i+268)**0.5)
#     if m*m ==i+100 and n*n ==i+268:
#         print(i)

# (7) 猜数字游戏，系统随机生成一个1000以内的数字，用户输入一个数字，如果输入数字大于系统数字则提示‘大了’，反之提示‘小了’，直到相等游戏结束，提示‘通关’ 并输出猜测次数。（提示：用到random模块）
# import random
# r=random.randint(0,1000)
# a=0
# while True :
#     num=int(input('请输入数字：'))
#     a+=1
#     if num>r:
#         print('大了！')
#     elif num<r:
#         print('小了！')
#     else:
#         print(f'游戏通关！猜测{a}次')
#         break



# (8) 对3、65、22、102、4进行降序排序。
# test=[3,65,22,102,4]
# print(sorted(test))  # 只有列表能用sort方法
# test.sort(reverse=True)  # 倒序
# print(test)

# for a in range(len(test)-1):
#     for i in range(len(test)-1):
#         if test[i] < test[i+1]:
#             test[i],test[i + 1]=test[i + 1],test[i]
#
# else:
#     print(test)




# (9) 计算200以内的所有质数（即只有1和其自身能够被这个数整除的数），建议使用至少3种算法实现，看看哪一种算法的运算次数最少。
# for i in range(2,201):
#     for j in range(2,i):
#         if (i%j)==0:
#             # print(i,'不是质数')
#             break
#     else:
#         print(i)



# (10) 设定的总行数line可以随机修改，修改后仍然能打印出line行的直角三角形。
# 打印如下两种三角形图形：
# *                      *
# **                    ***
# ***                  *****
# ****                *******
# *****              *********
# line=int(input('请输入总行数：'))
# for i in range(1,line+1):
#     for j in range(i):
#         print('*',end='')
#     print()


# line=int(input('请输入总行数：'))
# for i in range(line):
#     for j in range(1,line-i):
#         print(' ',end='')
#     for k in range(2*i+1):
#         print('*',end='')
#     print()

# for i in range(1,line+1):
#     print(" "*(line-i)+"*"*(2*i-1))
#
# for i in range(0,line):
#     for j in range(0, line - i):
#         print(end=" ")
#     for k in range(line - i, line+1):
#         print("*", end=" ")
#
#     print("")

# print('* '*10)
# for i in range(1,10-1):
#     for j in range(i):
#         print(' ',end='')
#     print('* ',end='')
#     for k in range(i,10-2):
#         print('  ',end='')
#     print('*',end='')
#     print()
# print(' '*(10-1)+'* ')

# line=int(input('请输入总行数：'))
# for i in range(line):
#     for k in range(i):
#         print(' ',end='')
#     for j in range(2*(line-i)-1):
#         print('*',end='')
#     print()


# a=[[[1,2],3],[4,5,6],['a','b','c']]

# for i in range(len(a)):
#     b=a[i]
#     for j in range(len(b)):
#         print(b[j])

# for i in range(len(a)):
#     for j in a[i]:
#         print(j)


a=str(1,2,3,4)






